/* 用户服务接口定义 */
namespace go user

include "common.thrift"

service UserService {
    /**
     * 用户注册（密码需在前端进行SHA-256哈希）
     * @param username 4-20位字母数字组合（需服务端二次校验）
     * @param passwordHash 已哈希的密码字符串
     * @param role 用户权限等级（1: 普通用户, 2: 管理员等）
     * @return JWT令牌
     */
    string Register(
        1: string username,
        2: string passwordHash,
        3: byte role
    ) throws (1: common.BizException e),

    /**
     * 用户登录认证
     * @param username 用户名
     * @param passwordHash 已哈希的密码字符串
     * @return JWT令牌（有效期为24小时）
     *         令牌负载需包含userId和role信息
     */
    string Authenticate(
        1: string username,
        2: string passwordHash
    ) throws (1: common.BizException e)
}
